home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / fb386 / getdir / getdir2.bas < prev    next >
BASIC Source File  |  1991-10-18  |  2KB  |  71 lines

  1. 10 '---getdir2.bas--- 91.08.16--- NAG01365 K.Kurosaki
  2. 20 CLEAR ,,8192,8192,8192
  3. 22 SCREEN @0 : PALETTE : PALETTE 5,[200,0,0] : COLOR 7,0,7 : CLS
  4. 30 LOADM"getdir2.rex",0
  5. 40 DEFINT A-Z : DIM S$(100),F$(100),AT(100)
  6. 50 WXB=100 : WYB=0 : GOSUB *MC_INIT
  7. 60 FOR I=1 TO 25 : S$=S$+" " : NEXT
  8. 70 FOR I=0 TO 100 : S$(I)=S$+" " : NEXT
  9. 80 *MAIN
  10. 90 GOSUB *DIR : CLS
  11. 100 FOR I=0 TO N1-1
  12. 110   WX=WXB:WY=WYB+I*18: WC1=7: WC2=1: WC3=7: WS$=" "+F$(I):WW=8*15
  13. 120   IF AT(I) AND &H10 THEN WC2=4
  14. 130   GOSUB *BOX
  15. 140 NEXT
  16. 150 *MAIN1
  17. 160 MOUSE(2) ON : MOUSE(4) ON
  18. 170 *MAIN2
  19. 180 IF CD_FLAG=0 THEN *MAIN2
  20. 190 MOUSE(2) STOP : MOUSE(4) STOP
  21. 200 SHELL "CD "+F$(MO_NO1) : CD_FLAG=0
  22. 210 GOTO *MAIN
  23. 220 '
  24. 230 *MC_INIT
  25. 240 MOUSE 0 : MOUSE 1,WXB,WYB,1
  26. 250 ON MOUSE(2) GOSUB *MO_LEFT
  27. 260 ON MOUSE(4) GOSUB *MO_RIGHT
  28. 270 RETURN
  29. 280 '
  30. 290 *MO_LEFT
  31. 300 C1=1 : WC2=2 : GOTO *MO_RIGHT2
  32. 310 *MO_RIGHT
  33. 320 C1=0 : WC2=1
  34. 330 *MO_RIGHT2
  35. 340 GOSUB *MO_XY 
  36. 350 IF MO_NO>=0 AND MO_NO<N1 THEN GOSUB *CK_CD:GOSUB *BOX_CHG
  37. 360 RETURN *MAIN1
  38. 370 '
  39. 380 *CK_CD
  40. 390 IF (AT(MO_NO) AND &H10)=0 THEN RETURN
  41. 400 IF C1=1 THEN CD_FLAG=1:MO_NO1=MO_NO : RETURN
  42. 410 WC2=4
  43. 420 RETURN
  44. 430 '
  45. 440 *MO_XY
  46. 450 MOUSE(2) STOP : MOUSE(4) STOP
  47. 460 MOX=MOUSE(0)-WXB : MOY=MOUSE(1)-WYB
  48. 470 IF MOX<0 OR MOY<0 OR MOX>WW OR MOY>18*26-1 THEN MO_NO=-1 : RETURN
  49. 480 MO_NO=MOY \ 18 : RETURN
  50. 490 '
  51. 500 *BOX_CHG
  52. 510 WY=18*MO_NO : WS$=" "+F$(MO_NO) : GOSUB *BOX : RETURN
  53. 520 ' 
  54. 530 *BOX
  55. 540 LINE(WX,WY)-(WX+WW,WY+16),PSET,WC1,BF,%WC2
  56. 550 SYMBOL(WX,WY+1),WS$,1,1,WC3
  57. 560 RETURN
  58. 570 '
  59. 580 *DIR
  60. 590 P$="*.*"+CHR$(0)
  61. 600 AT&=&H1F : N&=100
  62. 610 ST=CALLM(0,1,VARPTR(P$),AT&,VARPTR(N&),VARPTR(S$(0)))
  63. 620 IF ST>1 THEN PRINT "error";ST : A$=INPUT$(1)
  64. 630 N1=0
  65. 640 FOR I=0 TO N&-1
  66. 650   F$=MID$(S$(I),12,12) : F$(N1)=F$
  67. 660   AT=ASC(S$(I)) : AT(N1)=AT : N1=N1+1
  68. 670   IF (AT AND &H10)>0 AND LEFT$(F$,2)=". " THEN N1=N1-1
  69. 680 NEXT
  70. 690 RETURN
  71.